home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / network / midi / mx2net20.lzh / MX2NET20 / NETVIEW.MOD < prev    next >
Text File  |  1990-12-15  |  2KB  |  69 lines

  1. MODULE  netview;
  2. FROM    BIOS            IMPORT  RW,RWAbs,Device,BConOut,BConIn,BConStat;
  3. FROM    XBIOS           IMPORT  ScreenPhysicalBase,IOREC,IORECPTR,
  4.                                 SerialDevice,IORec;
  5. FROM    SYSTEM          IMPORT  ADR,ADDRESS,BYTE;
  6. FROM    GEMDOS          IMPORT  Term;
  7. FROM    ASCII           IMPORT  ESC;
  8. FROM    NETWORK         IMPORT  GetOpt,PHYSLOW;
  9.  
  10. CONST   DEBUG   =       FALSE;
  11.  
  12. TYPE    message =       ARRAY [0..255] OF CARDINAL;
  13. VAR         char                        :       CHAR;
  14.             result                      :       LONGINT;
  15.             i,r                         :       CARDINAL;
  16.             ok,init                     :       BOOLEAN;
  17.             cmd                         :       ARRAY [0..127] OF LONGCARD;
  18.             ch                          :       LONGCARD;
  19.             screen1,screen0             :       message;
  20.             meminfo                     :       POINTER TO ARRAY [0..511]
  21.                                                 OF BYTE;
  22.  
  23. PROCEDURE       phybase(): CARDINAL;
  24. BEGIN
  25.   IF PHYSLOW THEN
  26.         RETURN CARDINAL(LONGCARD(078000H) DIV LONGCARD(512));
  27.   ELSE
  28.         RETURN CARDINAL(LONGCARD(0F8000H) DIV LONGCARD(512));
  29.   END;
  30. END     phybase;
  31.  
  32. PROCEDURE       compare;
  33. BEGIN
  34.                   meminfo:=ScreenPhysicalBase();
  35.                   FOR i:=0 TO 63 DO
  36.                     screen0[i]:=0;
  37.                     FOR r:=0 TO 511 DO
  38.                         IF NOT init THEN screen0[i]:=1 END;
  39.                         screen0[i]:=screen0[i]+CARDINAL(meminfo^[0]);
  40.                         meminfo:=ADDRESS(LONGCARD(meminfo)+LONGCARD(1));
  41.                     END;
  42.                   END;
  43.                   init:=TRUE;
  44. END     compare;
  45.  
  46. BEGIN
  47.    GetOpt; (* see if the remote is a 520 *)
  48.  
  49.  LOOP
  50.       result:=RWAbs(Read,ADR(screen1),1,3,31);
  51.       compare;
  52.       FOR i:=0 TO 63 DO
  53.         IF screen0[i]#screen1[i] THEN
  54.            result:=RWAbs(Read,ScreenPhysicalBase()+ADDRESS(i*512),1,
  55.                          phybase()+i,31);
  56.         END;
  57.       END;
  58.       WHILE BConStat(CON) DO
  59.         ch:=BConIn(CON);
  60.         IF (ch DIV 65536) = 61H THEN EXIT END;
  61.         cmd[0]:=1;
  62.         cmd[1]:=ch;
  63.         result:=RWAbs(Write,ADR(cmd),1,2,31);
  64.       END;
  65.  END;
  66.  ok:=Term(0);
  67. END     netview.
  68.  
  69.